<#assign 
    valuePrefix="#{"
    daoClassName=tableInfo.modelClassName+"Mapper">
package com.xdf.xzymanagementsystem.dao;

import org.springframework.stereotype.Repository;
import java.util.List;
import com.xdf.xzymanagementsystem.entity.${tableInfo.modelClassName};
import org.apache.ibatis.annotations.Param;
import com.xdf.xzymanagementsystem.util.Example;

/**
 * @Description : <#if tableInfo.remarks??>${tableInfo.remarks}</#if>
 * @Author : chanchaw
 * @Date : ${.now}
 */
@Repository
public interface ${daoClassName} {
    int insert(${tableInfo.modelClassName} record);

    int insertSelective(${tableInfo.modelClassName} record);

    int multiInsert(List<${tableInfo.modelClassName}> list);

    int insertDumplicateKeyUpdate(${tableInfo.modelClassName} record);

    int updateByPrimaryKey(${tableInfo.modelClassName} record);

    int updateByPrimaryKeySelective(${tableInfo.modelClassName} record);

    int multiUpdate(List<${tableInfo.modelClassName}> list);

    int deleteByPrimaryKey(${tableInfo.pkFieldJavaType} ${tableInfo.primaryKeyFieldName});

    ${tableInfo.modelClassName} selectByPrimaryKey(${tableInfo.pkFieldJavaType} ${tableInfo.primaryKeyFieldName});

    List<${tableInfo.modelClassName}> selectAll();

    List<${tableInfo.modelClassName}> selectByParam(${tableInfo.modelClassName} record);

    int updateByExampleSelective(@Param("record") ${tableInfo.modelClassName} record, @Param("example") Example example);

    int deleteByExample(@Param("example") Example example);

    List<${tableInfo.modelClassName}> selectByExample(@Param("example") Example example);

    int insertByExampleSelective(@Param("record") ${tableInfo.modelClassName} record, @Param("example") Example example);

    long countByExample(@Param("example") Example example);
}